#define _CRT_SECURE_NO_WARNINGS 1

#include "douList.h"

void testList1()
{
	ListNode * phead = ListCreate();

	ListPushBack(phead, 1);
	ListPushBack(phead, 2);
	ListPushBack(phead, 3);
	ListPushBack(phead, 4);
	ListPrint(phead);

	ListPushFront(phead, 0);
	ListPushFront(phead, -1);
	ListPrint(phead);
	ListPushFront(phead, -2);
	ListPushFront(phead, -3);
	ListPushFront(phead, -4);
	ListPrint(phead);

	ListPopBack(phead);
	ListPopBack(phead);
	ListPrint(phead);
	ListPopBack(phead);
	ListPopBack(phead);
	ListPrint(phead);

	ListPopFront(phead);
	ListPopFront(phead);
	ListPopFront(phead);
	ListPopFront(phead);
	ListPrint(phead);

	ListInsert(phead->_next, -1);
	ListInsert(phead->_next, -2);
	ListPrint(phead);
	ListInsert(phead->_next->_next, -3);
	ListInsert(phead->_next->_next, -4);
	ListPrint(phead);

	ListInsert(phead->_prev, 1);
	ListInsert(phead->_prev, 2);
	ListInsert(phead->_prev, 3);
	ListInsert(phead->_prev, 4);
	ListPrint(phead);

	ListErase(phead->_prev);
	ListErase(phead->_prev);
	ListErase(phead->_prev);
	ListErase(phead->_prev);
	ListPrint(phead);

	ListErase(phead->_next);
	ListErase(phead->_next);
	ListErase(phead->_next);
	ListErase(phead->_next);
	ListPrint(phead);

	ListDestory(phead);
}

int main()
{
	testList1();

	return 0;
}
